﻿using System;
namespace Producers.Rr.Xtee.Riik.Ee.Producer.Rr {
    
    
    public partial class CtEHAK : global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.ICtEHAK {
        
        private string @__ehakTyyp;
        
        private string @__kood;
        
        private string @__nimetus;
        
        private decimal @__isikuteArv;
        
        private CtEHAK.IAlamEHAKudType @__alamEHAKud;
        
        public CtEHAK() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public CtEHAK(string @ehakTyyp, string @kood, string @nimetus, decimal @isikuteArv, CtEHAK.IAlamEHAKudType @alamEHAKud) {
            this.@__ehakTyyp = @ehakTyyp;
            this.@__kood = @kood;
            this.@__nimetus = @nimetus;
            this.@__isikuteArv = @isikuteArv;
            this.@__alamEHAKud = @alamEHAKud;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public CtEHAK(string @ehakTyyp, string @kood, string @nimetus, decimal @isikuteArv) {
            this.@__ehakTyyp = @ehakTyyp;
            this.@__kood = @kood;
            this.@__nimetus = @nimetus;
            this.@__isikuteArv = @isikuteArv;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected CtEHAK(ICtEHAK @ctEHAK) {
            this.@__ehakTyyp = @ctEHAK.EhakTyyp;
            this.@__kood = @ctEHAK.Kood;
            this.@__nimetus = @ctEHAK.Nimetus;
            this.@__isikuteArv = @ctEHAK.IsikuteArv;
            this.@__alamEHAKud = @ctEHAK.AlamEHAKud;
        }
        
        public virtual string EhakTyyp {
            get {
                return this.@__ehakTyyp;
            }
            set {
                this.@__ehakTyyp = value;
            }
        }
        
        public virtual string Kood {
            get {
                return this.@__kood;
            }
            set {
                this.@__kood = value;
            }
        }
        
        public virtual string Nimetus {
            get {
                return this.@__nimetus;
            }
            set {
                this.@__nimetus = value;
            }
        }
        
        public virtual decimal IsikuteArv {
            get {
                return this.@__isikuteArv;
            }
            set {
                this.@__isikuteArv = value;
            }
        }
        
        public virtual CtEHAK.IAlamEHAKudType AlamEHAKud {
            get {
                return this.@__alamEHAKud;
            }
            set {
                this.@__alamEHAKud = value;
            }
        }
        
        public partial class AlamEHAKudType : IAlamEHAKudType {
            
            private System.Collections.Generic.List<global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.ICtEHAK> @__eHAK = new System.Collections.Generic.List<global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.ICtEHAK>();
            
            public AlamEHAKudType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public AlamEHAKudType(System.Collections.Generic.List<global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.ICtEHAK> @eHAK) {
                this.@__eHAK = @eHAK;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected AlamEHAKudType(IAlamEHAKudType @alamEHAKudType) {
                this.@__eHAK = @alamEHAKudType.EHAK;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.ICtEHAK> EHAK {
                get {
                    return this.@__eHAK;
                }
                set {
                    this.@__eHAK = value;
                }
            }
        }
        
        public interface IAlamEHAKudType {
            
            System.Collections.Generic.List<global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.ICtEHAK> EHAK {
                get;
                set;
            }
        }
    }
}
